package main

import "fmt"

func plusOne(digits []int) []int {
	digits[len(digits)-1]++
	for i := len(digits) - 1; i >= 0; i-- {
		if digits[i] >= 10 {
			digits[i] -= 10
			if i > 0 {
				digits[i-1]++
			} else {
				// 最高位进位
				digits = append([]int{1}, digits...)
				break
			}
		}
	}
	return digits
}

func main() {
	fmt.Printf("%#v\n", plusOne([]int{9, 9}))
	fmt.Printf("%#v\n", plusOne([]int{4, 3, 2, 1}))
	fmt.Printf("%#v\n", plusOne([]int{0}))
}
